2 追蹤者

進入腳本

進入腳本是應用程式啟動引導過程的第一步。一個應用程式(無論是 Web 應用程式還是主控台應用程式)都有一個單一的進入腳本。終端使用者向進入腳本發出請求,腳本實例化應用程式實例並將請求轉發給它們。

Web 應用程式的進入腳本必須儲存在 Web 可存取的目錄下,以便終端使用者可以存取它們。它們通常被命名為 index.php,但也可以使用任何其他名稱,前提是 Web 伺服器可以找到它們。

主控台應用程式的進入腳本通常儲存在應用程式的基礎路徑下,並命名為 yii(帶有 .php 後綴)。它們應該被設定為可執行,以便使用者可以透過命令 ./yii <route> [arguments] [options] 執行主控台應用程式。

進入腳本主要執行以下工作

Web 應用程式

以下是 Basic Web Project Template 的進入腳本中的程式碼。

<?php

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

// register Composer autoloader
require __DIR__ . '/../vendor/autoload.php';

// include Yii class file
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';

// load application configuration
$config = require __DIR__ . '/../config/web.php';

// create, configure and run application
(new yii\web\Application($config))->run();

主控台應用程式

同樣地,以下是主控台應用程式的進入腳本的程式碼

#!/usr/bin/env php
<?php
/**
 * Yii console bootstrap file.
 *
 * @link https://yii.dev.org.tw/
 * @copyright Copyright (c) 2008 Yii Software LLC
 * @license https://yii.dev.org.tw/license/
 */

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

// register Composer autoloader
require __DIR__ . '/vendor/autoload.php';

// include Yii class file
require __DIR__ . '/vendor/yiisoft/yii2/Yii.php';

// load application configuration
$config = require __DIR__ . '/config/console.php';

$application = new yii\console\Application($config);
$exitCode = $application->run();
exit($exitCode);

定義常數

進入腳本是定義全域常數的最佳位置。Yii 支援以下三個常數

  • YII_DEBUG:指定應用程式是否在偵錯模式下執行。當處於偵錯模式時,應用程式將保留更多記錄資訊,並且如果拋出異常,將顯示詳細的錯誤呼叫堆疊。因此,偵錯模式主要應在開發期間使用。YII_DEBUG 的預設值為 false
  • YII_ENV:指定應用程式正在哪個環境中執行。這將在配置章節中更詳細地描述。YII_ENV 的預設值為 'prod',表示應用程式正在生產環境中執行。
  • YII_ENABLE_ERROR_HANDLER:指定是否啟用 Yii 提供的錯誤處理器。此常數的預設值為 true

當定義常數時,我們經常使用如下程式碼

defined('YII_DEBUG') or define('YII_DEBUG', true);

這等同於以下程式碼

if (!defined('YII_DEBUG')) {
    define('YII_DEBUG', true);
}

顯然,前者更簡潔且更容易理解。

常數定義應在進入腳本的最開始處完成,以便它們在包含其他 PHP 檔案時生效。

發現錯字或您認為此頁面需要改進?
在 github 上編輯 !